<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        // 1- promise状态不可逆
        // 进行中-》完成状态
        // 进行中-》失败状态


        // promise.then() 是异步微任务
        /* 
            第一次 把整个脚本当做宏任务，清空微任务队列
            第二次 把整宏任务，清空微任务队列

            webAPI
            宏任务队列
                (() => {
                    // 异步 宏任务
                    console.log(9);
                }
            微任务队列
               

            1 2 4 3 9
        */

        console.log(1);

        let p = new Promise(function (r, j) {
            //同步的
            // 可以写异步的操作
            console.log(2);
            r();
        })
        setTimeout(() => {
            // 异步 宏任务
            console.log(9);
        });

        p.then(function () {
            console.log('是异步微任务-then 3');
        })


        console.log(4);
    </script>

</body>

</html>